#1.创建元祖
tu_one = ()                                     # 空元组
tu_two = ('t', 'u', 'p', 'l', 'e')        # 元组中元素类型相同
tu_three = (0.3, 1, 'python', '&',)    # 元组中元素类型不同
print(tu_one)
print(tu_two)
print(tu_three)

#2.如果元组中只有一个元素，必须在元素后面添加逗号
tu_four = (1,)
print(tu_four)

#3.使用tuple()函数创建元组
tuple_null = tuple()
print(tuple_null)
tuple_str = tuple('abc')
print(tuple_str)  

#4.访问元祖，使用下标索引
tuple_demo = ('hello', 100, 'Python')
print(tuple_demo[0])
print(tuple_demo[1])
print(tuple_demo[2])

#5.元祖的切片
exam_tuple = ('h', 'e', 'l', 'l', 'o')
print(exam_tuple[2:5])

#6.元祖不可以修改。但是如果是列表，列表中的元素可以修改
# 尝试修改元组中的不可变元素（会报错）
# tuple_char[0] = 'c'  # 取消注释会报错，TypeError: 'tuple' object does not support item assignment

# 修改元组中列表内的元素
a=("0","1",["1","2"])
print(f"修改前元组：{a}")

a[2][0] = 'c'
a[2][1] = 'd'
print(f"修改后元组：{a}")

#元祖的简单使用：建立星期表
week=("星期日","星期一", "星期二", "星期三", "星期四", "星期五", "星期六")
print(week)
w=int(input("请输入一个数字(0-6)来表示星期几："))
if w>=0 and w<=6:
    print(week[w])
else:
    print("输入错误")

#元祖作为参数，也就是用*
def fun(x,y,*args):
    print(x,y)
    print(args)

fun(1,2)
fun(1,2,3)
fun(1,2,3,4)

#元组作为最大值函数的参数
def max(*args):
    print(args)
    m=args[0]
    for i in range(len(args)):
        if m<args[i]:
            m=args[i]
    return m

print(max(1,2,3,4,5))

#元祖基本操作
# 1.len 长度
c=tuple("abcdefg") #用字符串创建元组
print(len(c))

#2.+连接
c=tuple("abcdefg") #用字符串创建元组
d=(1,2,3)
print(c+d) #连接两个元组

#3. * 重复
d=(1,2,3)
print(d*3) #重复三次

#4.in  判断元素是否在元组中
c=tuple("abcdefg") #用字符串创建元组
print("a" in c) #判断元素是否在元组中

#5. 索引和切片
c=tuple("abcdefg") #用字符串创建元组
print(c[1]) #索引
print(c[0:2]) #切片

#6. count 统计元素出现的次数
c=tuple("abcdefg") #用字符串创建元组
print(c.count("a")) #统计元素出现的次数

#7. index 查找元素的索引
c=tuple("abcdefg") #用字符串创建元组
print(c.index("a")) #查找元素的索引

#元组和列表的转换
shopList = ('蔬菜', '牙膏', '芭比娃娃', '水果', '火腿肠')
# 由于萌萌有买了新的玩具，故元组中的数据要更新，所以需转换成列表
result = list(shopList)  # 将元组shopList转换成列表result
# 将新买的玩具加入购物清单
result.append("泡泡机")
result.append("贴画")
# 最后遍历输出新的购物清单
print("萌萌和妈妈最后的购物清单是：")
for r in result:
    print(r, end=" ")
print()


